package com.ruoyi.bussiness.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 线路对象 pub_line
 * 
 * @author ruoyi
 * @date 2023-11-12
 */
public class PubLine extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**  */
    private Long id;

    /** 线路编号 */
    @Excel(name = "线路编号")
    private String no;

    /** 线路长度 */
    @Excel(name = "线路长度")
    private Long length;

    /** 非直线系数 */
    @Excel(name = "非直线系数")
    private Long nonLinearCoefficient;

    /** 全程票价 */
    @Excel(name = "全程票价")
    private BigDecimal fullFare;

    /** 票制ID */
    @Excel(name = "票制ID")
    private Long fareCalculateMethodId;

    /** 有效期起始 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "有效期起始", width = 30, dateFormat = "yyyy-MM-dd")
    private Date validityDate;

    /** 有效期截止 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "有效期截止", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expiryDate;

    /** 是否分冬夏令时 */
    @Excel(name = "是否分冬夏令时")
    private Integer isDst;

    /** 首班时间 (格式:hh:mm) */
    @Excel(name = "首班时间 (格式:hh:mm)")
    private String firstVehicleHour;

    /** 夏令时首班车时间 (格式:hh:mm) */
    @Excel(name = "夏令时首班车时间 (格式:hh:mm)")
    private String dstFirstVehicleHour;

    /** 末班车时间 (格式:hh:mm) */
    @Excel(name = "末班车时间 (格式:hh:mm)")
    private String finalVehicleHour;

    /** 夏令时末班车时间 (格式:hh:mm) */
    @Excel(name = "夏令时末班车时间 (格式:hh:mm)")
    private String dstFinalVehicleHour;

    /** 线路是否审批 */
    @Excel(name = "线路是否审批")
    private Integer isApprove;

    /** 线路批复时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "线路批复时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date approvalDate;

    /** 线路首站站点 */
    @Excel(name = "线路首站站点")
    private String firstStationId;

    /** 线路末站站点 */
    @Excel(name = "线路末站站点")
    private String latestStationId;

    /** 公里数 */
    @Excel(name = "公里数")
    private Long kilometres;

    /** 站位走向 (上行和下行) */
    @Excel(name = "站位走向 (上行和下行)")
    private Long direction;

    /** 配置车辆数量 */
    @Excel(name = "配置车辆数量")
    private Long numberOfVehicles;

    /** 所属公司ID */
    @Excel(name = "所属公司ID")
    private String ownerCompanyId;

    /** 登记日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "登记日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date registeredDate;

    /** 审批状态 */
    @Excel(name = "审批状态")
    private Long approvalState;

    /** 审批人ID */
    @Excel(name = "审批人ID")
    private Long approvalPersonId;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 起始停车场ID */
    @Excel(name = "起始停车场ID")
    private String startParkingLotId;

    /** 终止停车场ID */
    @Excel(name = "终止停车场ID")
    private String endParkingLotId;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setNo(String no) 
    {
        this.no = no;
    }

    public String getNo() 
    {
        return no;
    }
    public void setLength(Long length) 
    {
        this.length = length;
    }

    public Long getLength() 
    {
        return length;
    }
    public void setNonLinearCoefficient(Long nonLinearCoefficient) 
    {
        this.nonLinearCoefficient = nonLinearCoefficient;
    }

    public Long getNonLinearCoefficient() 
    {
        return nonLinearCoefficient;
    }
    public void setFullFare(BigDecimal fullFare) 
    {
        this.fullFare = fullFare;
    }

    public BigDecimal getFullFare() 
    {
        return fullFare;
    }
    public void setFareCalculateMethodId(Long fareCalculateMethodId) 
    {
        this.fareCalculateMethodId = fareCalculateMethodId;
    }

    public Long getFareCalculateMethodId() 
    {
        return fareCalculateMethodId;
    }
    public void setValidityDate(Date validityDate) 
    {
        this.validityDate = validityDate;
    }

    public Date getValidityDate() 
    {
        return validityDate;
    }
    public void setExpiryDate(Date expiryDate) 
    {
        this.expiryDate = expiryDate;
    }

    public Date getExpiryDate() 
    {
        return expiryDate;
    }
    public void setIsDst(Integer isDst) 
    {
        this.isDst = isDst;
    }

    public Integer getIsDst() 
    {
        return isDst;
    }
    public void setFirstVehicleHour(String firstVehicleHour) 
    {
        this.firstVehicleHour = firstVehicleHour;
    }

    public String getFirstVehicleHour() 
    {
        return firstVehicleHour;
    }
    public void setDstFirstVehicleHour(String dstFirstVehicleHour) 
    {
        this.dstFirstVehicleHour = dstFirstVehicleHour;
    }

    public String getDstFirstVehicleHour() 
    {
        return dstFirstVehicleHour;
    }
    public void setFinalVehicleHour(String finalVehicleHour) 
    {
        this.finalVehicleHour = finalVehicleHour;
    }

    public String getFinalVehicleHour() 
    {
        return finalVehicleHour;
    }
    public void setDstFinalVehicleHour(String dstFinalVehicleHour) 
    {
        this.dstFinalVehicleHour = dstFinalVehicleHour;
    }

    public String getDstFinalVehicleHour() 
    {
        return dstFinalVehicleHour;
    }
    public void setIsApprove(Integer isApprove) 
    {
        this.isApprove = isApprove;
    }

    public Integer getIsApprove() 
    {
        return isApprove;
    }
    public void setApprovalDate(Date approvalDate) 
    {
        this.approvalDate = approvalDate;
    }

    public Date getApprovalDate() 
    {
        return approvalDate;
    }
    public void setFirstStationId(String firstStationId) 
    {
        this.firstStationId = firstStationId;
    }

    public String getFirstStationId() 
    {
        return firstStationId;
    }
    public void setLatestStationId(String latestStationId) 
    {
        this.latestStationId = latestStationId;
    }

    public String getLatestStationId() 
    {
        return latestStationId;
    }
    public void setKilometres(Long kilometres) 
    {
        this.kilometres = kilometres;
    }

    public Long getKilometres() 
    {
        return kilometres;
    }
    public void setDirection(Long direction) 
    {
        this.direction = direction;
    }

    public Long getDirection() 
    {
        return direction;
    }
    public void setNumberOfVehicles(Long numberOfVehicles) 
    {
        this.numberOfVehicles = numberOfVehicles;
    }

    public Long getNumberOfVehicles() 
    {
        return numberOfVehicles;
    }
    public void setOwnerCompanyId(String ownerCompanyId) 
    {
        this.ownerCompanyId = ownerCompanyId;
    }

    public String getOwnerCompanyId() 
    {
        return ownerCompanyId;
    }
    public void setRegisteredDate(Date registeredDate) 
    {
        this.registeredDate = registeredDate;
    }

    public Date getRegisteredDate() 
    {
        return registeredDate;
    }
    public void setApprovalState(Long approvalState) 
    {
        this.approvalState = approvalState;
    }

    public Long getApprovalState() 
    {
        return approvalState;
    }
    public void setApprovalPersonId(Long approvalPersonId) 
    {
        this.approvalPersonId = approvalPersonId;
    }

    public Long getApprovalPersonId() 
    {
        return approvalPersonId;
    }
    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }
    public void setStartParkingLotId(String startParkingLotId) 
    {
        this.startParkingLotId = startParkingLotId;
    }

    public String getStartParkingLotId() 
    {
        return startParkingLotId;
    }
    public void setEndParkingLotId(String endParkingLotId) 
    {
        this.endParkingLotId = endParkingLotId;
    }

    public String getEndParkingLotId() 
    {
        return endParkingLotId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("no", getNo())
            .append("length", getLength())
            .append("nonLinearCoefficient", getNonLinearCoefficient())
            .append("fullFare", getFullFare())
            .append("fareCalculateMethodId", getFareCalculateMethodId())
            .append("validityDate", getValidityDate())
            .append("expiryDate", getExpiryDate())
            .append("isDst", getIsDst())
            .append("firstVehicleHour", getFirstVehicleHour())
            .append("dstFirstVehicleHour", getDstFirstVehicleHour())
            .append("finalVehicleHour", getFinalVehicleHour())
            .append("dstFinalVehicleHour", getDstFinalVehicleHour())
            .append("isApprove", getIsApprove())
            .append("approvalDate", getApprovalDate())
            .append("firstStationId", getFirstStationId())
            .append("latestStationId", getLatestStationId())
            .append("kilometres", getKilometres())
            .append("direction", getDirection())
            .append("numberOfVehicles", getNumberOfVehicles())
            .append("ownerCompanyId", getOwnerCompanyId())
            .append("registeredDate", getRegisteredDate())
            .append("approvalState", getApprovalState())
            .append("approvalPersonId", getApprovalPersonId())
            .append("createdAt", getCreatedAt())
            .append("startParkingLotId", getStartParkingLotId())
            .append("endParkingLotId", getEndParkingLotId())
            .toString();
    }
}
